home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CRESC / Variations / gen-process < prev    next >
Lisp/Scheme  |  1996-12-31  |  2KB  |  34 lines

  1. gen-process operation parameter-list symbol-pattern &optional how
  2.  
  3. Use this function to generate processed copies of a symbol-pattern. Each copy can be processed by an individual value. The number of copies generated equal the length of the parameter-list.
  4.  
  5. (gen-process '(symbol-transpose x y) '(1 2 -3 4) '(h e c))
  6. --> (i f d j g e e b -b l i g)
  7.  
  8. (gen-process '(symbol-transpose x y) 
  9.              '(1 2 -3 4) '(h e c) :list)
  10. --> ((i f d) (j g e) (e b -b) (l i g))
  11.  
  12. The operation can be any function expression with or without a parameter. The list must be quoted and the parameter x MUST be used to represent the parameter-list, the parameter y used to represent the symbol-pattern.
  13.  
  14. If the keyword :list is used the processed generations are contained in separate lists. If omited, as above, they are appended.
  15.  
  16. This function can be used with most symbol-generators and with most symbol-processors. Notice how symbols in the parameter-list can be used:
  17.  
  18. (gen-process '(symbol-inversion x y) '(a b c b f e) '(h e c))
  19. --> (-h -e -c -f -c a -d a c -f -c a d g i b e g)
  20.  
  21. (gen-process '(filter-delete x y) 
  22.              '(h e e (h c) e e h (c e) h) '(h e c))
  23. --> (= e c h = c h = c = e = h = c h = c = e c h = = = e c)
  24.  
  25. This function has many possibilities. It might be used to generate the transpositions of a single arpeggio pattern in a tonality derived from a random fractal or digital synth output.
  26.  
  27. (setq arpeggio '(a -d e g -f h))
  28.  
  29. (setq values (vector-to-list 
  30.               (vector-round -12 12 
  31.                             (gen-noise-white 32))))
  32. (setq material
  33.       (gen-process '(symbol-transpose x y) values arpeggio))
  34.